home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / dummy_thread.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  111 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __author__ = 'Brett Cannon'
  5. __email__ = 'brett@python.org'
  6. __all__ = [
  7.     'error',
  8.     'start_new_thread',
  9.     'exit',
  10.     'get_ident',
  11.     'allocate_lock',
  12.     'interrupt_main',
  13.     'LockType']
  14. import traceback as _traceback
  15. import warnings
  16.  
  17. class error(Exception):
  18.     
  19.     def __init__(self, *args):
  20.         self.args = args
  21.  
  22.  
  23.  
  24. def start_new_thread(function, args, kwargs = { }):
  25.     global _main, _interrupt
  26.     if type(args) != type(tuple()):
  27.         raise TypeError('2nd arg must be a tuple')
  28.     
  29.     if type(kwargs) != type(dict()):
  30.         raise TypeError('3rd arg must be a dict')
  31.     
  32.     _main = False
  33.     
  34.     try:
  35.         function(*args, **kwargs)
  36.     except SystemExit:
  37.         pass
  38.     except:
  39.         _traceback.print_exc()
  40.  
  41.     _main = True
  42.     if _interrupt:
  43.         _interrupt = False
  44.         raise KeyboardInterrupt
  45.     
  46.  
  47.  
  48. def exit():
  49.     raise SystemExit
  50.  
  51.  
  52. def get_ident():
  53.     return -1
  54.  
  55.  
  56. def allocate_lock():
  57.     return LockType()
  58.  
  59.  
  60. def stack_size(size = None):
  61.     if size is not None:
  62.         raise error('setting thread stack size not supported')
  63.     
  64.     return 0
  65.  
  66.  
  67. class LockType(object):
  68.     
  69.     def __init__(self):
  70.         self.locked_status = False
  71.  
  72.     
  73.     def acquire(self, waitflag = None):
  74.         if waitflag is None or waitflag:
  75.             self.locked_status = True
  76.             return True
  77.         elif not self.locked_status:
  78.             self.locked_status = True
  79.             return True
  80.         else:
  81.             return False
  82.  
  83.     __enter__ = acquire
  84.     
  85.     def __exit__(self, typ, val, tb):
  86.         self.release()
  87.  
  88.     
  89.     def release(self):
  90.         if not self.locked_status:
  91.             raise error
  92.         
  93.         self.locked_status = False
  94.         return True
  95.  
  96.     
  97.     def locked(self):
  98.         return self.locked_status
  99.  
  100.  
  101. _interrupt = False
  102. _main = True
  103.  
  104. def interrupt_main():
  105.     global _interrupt
  106.     if _main:
  107.         raise KeyboardInterrupt
  108.     else:
  109.         _interrupt = True
  110.  
  111.